- Controller方法中有两种指定返回视图的方式
- ModelAndView
- 直接返回视图的逻辑视图名称(字符串)
使用逻辑视图名称(字符串)
- 因为配置了视图解析器ViewResolver,可以直接使用视图的名称作为返回视图
示例
@Controller public class MainController {
@RequestMapping("/login") public ModelAndView login(){ return "welcome"; } } |
ModelAndView
- 使用ModelAndView类用来存储处理完后的结果数据,以及显示该数据的视图。从名字上看ModelAndView中的Model代表模型,View代表视图,这个名字就很好地解释了该类的作用。
- 业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后让该ModelAndView返回该Spring MVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上
方法 |
说明 |
setView() |
使用已经实例化的视图对象 |
setViewName() |
为ModelAndView加入视图,即返回的界面,值一般为界面视图jsp的名字 |
addObject() |
加入传递到前台视图的参数, 传入的两个参数以key和value对应 |
addAllObject() |
加入多个对象参数,传入点参数为Map对象 |
- 使用ModelAndView构造方法中的setViewName()可以指定返回的页面名称
示例
@Controller public class MainController {
@RequestMapping("/login") public ModelAndView login(){ ModelAndView mav = new ModelAndView(); mav.setViewName("welcome"); //返回的视图文件名 return mav; } } |